package com.sc.nft.feign;

import com.sc.nft.dto.MerchantUserDaoAddUserAndDaoRelationshipDTO;
import com.sc.nft.dto.MerchantUserDaoPageDTO;
import com.sc.nft.dto.MerchantUserDaoRemoveDTO;
import com.sc.nft.sup.PageResult;
import com.sc.nft.sup.Result;
import com.sc.nft.vo.MerchantUserDaoPageVO;
import com.sc.nft.vo.SpecifyTheDaoToRemoveTheAccountDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

@FeignClient(name = "nft-commercial", path = "/commercial/merchantUserDao")
public interface MerchantUserDaoClient {

    /**
     * 新增用户和dao的关系
     *
     * @param merchantUserDaoAddUserAndDaoRelationshipDTO
     * @return
     */
    @PostMapping("/addUserAndDaoRelationship")
    Result addUserAndDaoRelationship(@RequestBody MerchantUserDaoAddUserAndDaoRelationshipDTO merchantUserDaoAddUserAndDaoRelationshipDTO);

    /**
     * 获取dao列表用户
     *
     * @param merchantUserDaoPageDTO
     * @return
     */
    @PostMapping("/page")
    PageResult<MerchantUserDaoPageVO> page(@RequestBody MerchantUserDaoPageDTO merchantUserDaoPageDTO);

    /**
     * 指定dao移除账号
     *
     * @param merchantUserDaoRemoveDTO
     * @return
     */
    @PostMapping("/remove")
    Result remove(@RequestBody MerchantUserDaoRemoveDTO merchantUserDaoRemoveDTO);

    /**
     * 禁用指定dao下账号
     *
     * @param specifyTheDaoToRemoveTheAccountDTO
     * @return
     */
    @PostMapping("/specifyTheDaoToRemoveTheAccount")
    Result specifyTheDaoToRemoveTheAccount(@RequestBody SpecifyTheDaoToRemoveTheAccountDTO specifyTheDaoToRemoveTheAccountDTO);

}
